﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QQRobot.Services.Models.Response
{
    public class BaiduHotSearchResponse
    {
        [JsonProperty("data")]
        public Data Data { get; set; }

        [JsonProperty("view")]
        public string View { get; set; }

        [JsonProperty("tab")]
        public string Tab { get; set; }

        [JsonProperty("config")]
        public Config Config { get; set; }

        [JsonProperty("rootWrapperClass")]
        public string RootWrapperClass { get; set; }

        [JsonProperty("showScrollToTop")]
        public bool ShowScrollToTop { get; set; }
    }

    public class Data
    {
        [JsonProperty("cards")]
        public List<Card> Cards { get; set; }

        [JsonProperty("curBoardName")]
        public string CurBoardName { get; set; }

        [JsonProperty("logid")]
        public string Logid { get; set; }

        [JsonProperty("platform")]
        public string Platform { get; set; }

        [JsonProperty("tabBoard")]
        public List<TabBoard> TabBoard { get; set; }

        [JsonProperty("tag")]
        public List<Tag> Tag { get; set; }
    }

    public class Card
    {
        [JsonProperty("component")]
        public string Component { get; set; }

        [JsonProperty("content")]
        public List<Content> Content { get; set; }

        [JsonProperty("more")]
        public int More { get; set; }

        [JsonProperty("moreAppUrl")]
        public string MoreAppUrl { get; set; }

        [JsonProperty("moreUrl")]
        public string MoreUrl { get; set; }

        [JsonProperty("text")]
        public string Text { get; set; }

        [JsonProperty("topContent")]
        public List<TopContent> TopContent { get; set; }

        [JsonProperty("typeName")]
        public string TypeName { get; set; }

        [JsonProperty("updateTime")]
        public string UpdateTime { get; set; }
    }

    public class Content
    {
        [JsonProperty("appUrl")]
        public string AppUrl { get; set; }

        [JsonProperty("desc")]
        public string Desc { get; set; }

        [JsonProperty("hotChange")]
        public string HotChange { get; set; }

        [JsonProperty("hotScore")]
        public string HotScore { get; set; }

        [JsonProperty("hotTag")]
        public string HotTag { get; set; }

        [JsonProperty("img")]
        public string Img { get; set; }

        [JsonProperty("index")]
        public int Index { get; set; }

        [JsonProperty("indexUrl")]
        public string IndexUrl { get; set; }

        [JsonProperty("query")]
        public string Query { get; set; }

        [JsonProperty("rawUrl")]
        public string RawUrl { get; set; }

        [JsonProperty("show")]
        public List<object> Show { get; set; }

        [JsonProperty("url")]
        public string Url { get; set; }

        [JsonProperty("word")]
        public string Word { get; set; }

        [JsonProperty("isTop")]
        public bool IsTop { get; set; }
    }

    public class TopContent
    {
        [JsonProperty("appUrl")]
        public string AppUrl { get; set; }

        [JsonProperty("desc")]
        public string Desc { get; set; }

        [JsonProperty("hotChange")]
        public string HotChange { get; set; }

        [JsonProperty("hotScore")]
        public string HotScore { get; set; }

        [JsonProperty("hotTag")]
        public string HotTag { get; set; }

        [JsonProperty("img")]
        public string Img { get; set; }

        [JsonProperty("index")]
        public int Index { get; set; }

        [JsonProperty("indexUrl")]
        public string IndexUrl { get; set; }

        [JsonProperty("query")]
        public string Query { get; set; }

        [JsonProperty("rawUrl")]
        public string RawUrl { get; set; }

        [JsonProperty("show")]
        public List<object> Show { get; set; }

        [JsonProperty("url")]
        public string Url { get; set; }

        [JsonProperty("word")]
        public string Word { get; set; }

        [JsonProperty("isTop")]
        public bool IsTop { get; set; }
    }

    public class TabBoard
    {
        [JsonProperty("index")]
        public int Index { get; set; }

        [JsonProperty("text")]
        public string Text { get; set; }

        [JsonProperty("typeName")]
        public string TypeName { get; set; }
    }

    public class Tag
    {
        [JsonProperty("typeName")]
        public string TypeName { get; set; }

        [JsonProperty("text")]
        public string Text { get; set; }

        [JsonProperty("content")]
        public List<string> Content { get; set; }

        [JsonProperty("curIndex")]
        public int CurIndex { get; set; }
    }

    public class Config
    {
    }
}
